package com.chentf.behavioral.strategy.code.a;

/**
 * 上下文：入口类
 */
public class SortService {

    /**
     * 注入接口，多用组合，拿到一个排序算法
     */
    private SortStrategy sortStrategy;

    /**
     * 为了强制要求用户必须传入一个排序算法
     * @param sortStrategy
     */
    public SortService(SortStrategy sortStrategy) {
        this.sortStrategy = sortStrategy;
    }

    /**
     * 随时动态更新排序算法
     * @param sortStrategy
     */
    public void setSortStrategy(SortStrategy sortStrategy) {
        this.sortStrategy = sortStrategy;
    }

    /**
     * 此处才是别人调用的排序方法
     * @param arr
     */
    public void sort(Integer[] arr) {
        sortStrategy.sort(arr);
    }

}
